package gui;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import javax.swing.border.TitledBorder;
import javax.swing.JButton;

import negocio.Recado;
import negocio.RecadoControlador;
import negocio.Usuario;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class RecadoVer extends JFrame {

	private JPanel contentPane;
	private JTextField textField;
	private JTextField textField_1;
	private JTextField textField_2;
	private Usuario usuario;
	private Recado recado;
	private Recados recadosPadre;
	JTextPane textPane;
	private JButton btnNewButton;
	private RecadoVer padreRecadoVer=this;
	private RecadosEnviados recadosEnviados;
	private JLabel lblReceptor;
	private JLabel lblRemitente;

	
	public void llenarDatos()
	{
		if(recadosEnviados!=null)
		{
			textField.setText(recado.getRemitente().getNombre()+" "+recado.getRemitente().getApellido());
			textField_1.setText(recado.getFechaRecado().toString()+" "+recado.getHora().toString());
			textField_2.setText(recado.getAsunto());
			textPane.setText(recado.getCuerpo());
		}
		else
		{
			textField.setText(recado.getReceptor().getNombre()+" "+recado.getReceptor().getApellido());
			textField_1.setText(recado.getFechaRecado().toString()+" "+recado.getHora().toString());
			textField_2.setText(recado.getAsunto());
			textPane.setText(recado.getCuerpo());
		}
	}
	
	public Recado getRecado()
	{
		return this.recado;
	}
	
	
	public RecadoVer(Usuario usuario, Recado recado, Recados recadosPadre, RecadosEnviados recadosEnviados) {
		this.recadosEnviados=recadosEnviados;
		this.usuario=usuario;
		this.recado=recado;
		this.recadosPadre=recadosPadre;
		
		addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e){
				textField.setText("");
				textField_1.setText("");
				textField_2.setText("");
				textPane.setText("");
				if(recadosEnviados==null)
				{
					RecadoControlador.cambiarEstado(recado, "Leido");
					recadosPadre.llenarTabla();
				}
				else
				{
					recadosEnviados.nullRecadosVerEnviado();
				}
				dispose();
			}
		});
		
		
		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		lblRemitente = new JLabel("Remitente");
		lblRemitente.setBounds(10, 11, 66, 14);
		contentPane.add(lblRemitente);
		
		lblReceptor = new JLabel("Receptor");
		lblReceptor.setBounds(10, 11, 66, 14);
		contentPane.add(lblReceptor);
		
		if(recadosEnviados==null)
		{
			lblRemitente.setVisible(true);
			lblReceptor.setVisible(false);
		}
		else
		{
			lblReceptor.setVisible(true);
			lblRemitente.setVisible(false);
		}
		
		JLabel lblFecha = new JLabel("Fecha y hora");
		lblFecha.setBounds(10, 36, 66, 14);
		contentPane.add(lblFecha);
		
		JLabel lblAsunto = new JLabel("Asunto");
		lblAsunto.setBounds(10, 61, 46, 14);
		contentPane.add(lblAsunto);
		
		textField = new JTextField();
		textField.setEnabled(false);
		textField.setEditable(false);
		textField.setBounds(86, 8, 338, 20);
		contentPane.add(textField);
		textField.setColumns(10);
		
		textField_1 = new JTextField();
		textField_1.setEditable(false);
		textField_1.setEnabled(false);
		textField_1.setBounds(86, 33, 338, 20);
		contentPane.add(textField_1);
		textField_1.setColumns(10);
		
		textField_2 = new JTextField();
		textField_2.setEditable(false);
		textField_2.setEnabled(false);
		textField_2.setBounds(86, 58, 338, 20);
		contentPane.add(textField_2);
		textField_2.setColumns(10);
		
		JPanel panel = new JPanel();
		panel.setBorder(new TitledBorder(null, "Recado", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		panel.setBounds(4, 90, 426, 130);
		contentPane.add(panel);
		panel.setLayout(null);
		
		textPane = new JTextPane();
		textPane.setEditable(false);
		textPane.setBounds(6, 16, 414, 107);
		panel.add(textPane);
		
		JButton btnSalir = new JButton("Salir");
		btnSalir.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				textField.setText("");
				textField_1.setText("");
				textField_2.setText("");
				textPane.setText("");
				if(recadosEnviados==null)
				{
					RecadoControlador.cambiarEstado(recado, "Leido");
					recadosPadre.llenarTabla();
					recadosPadre.nullRecadosVer();
				}
				else
				{
					recadosEnviados.nullRecadosVerEnviado();
				}
				dispose();
			}
		});
		btnSalir.setBounds(335, 228, 89, 23);
		contentPane.add(btnSalir);
		
		btnNewButton = new JButton("Responder");
		btnNewButton.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				RecadosCrear recadosCrear = new RecadosCrear(usuario, null, padreRecadoVer);
				recadosCrear.setVisible(true);
			}
		});
		btnNewButton.setBounds(236, 228, 89, 23);
		contentPane.add(btnNewButton);
		if(recadosEnviados!=null)
		{
			btnNewButton.setVisible(false);
		}
		this.llenarDatos();
	}

}
